The present disclosure relates generally to generating profiling data. The present disclosure more specifically relates to generating profiling data regarding the execution of tasks within a multi-threaded executable program.
Various levels of abstraction often separate source code written by a programmer and the actual instructions executed by a computing device. For example, a programmer may write source code for a computer program in a high-level programming language, such as C++ or C. The source code may then be transformed by a compiler into assembly code. Likewise, an assembler may then convert the assembly code into an object file having assembly code with offsets. A linker may then merge one or more object files or libraries into an executable file. During linking, references to external symbols may be resolved and finalized addresses to functions and variables may be generated.